package example1;

/**
 * <h3>designPattern</h3>
 * <p>饿汉式创建单例<p/>
 * <p>因为这个类只有一个实例，因此，自然不能让调用方使用new Xyz()来创建实例了。
 * 所以，单例的构造方法必须是private，这样就防止了调用方自己创建实例，但是在类的内部，是可以用一个静态字段来引用唯一创建的实例的。</p>
 * @author : zhang.bw
 * @date : 2020-06-08 11:30
 **/
public class Singleton1 {
	// 静态字段引用唯一实例
	private static final Singleton1 INSTANCE = new Singleton1();

	// 实现方式：通过静态方法返回实例，即:外部调用方获得这个唯一实例
	// 优点：简单使用
	// 缺点：不管程序是否使用了单例，都会生成单例对象，并且静态对象是在类加载过程中就要生成，会降低应用的启动速度。
	public static Singleton1 getInstance() {
		return INSTANCE;
	}

	// 私有构造方法，保证外部无法实例化
	private Singleton1() {
	}
}
